难度:简单 一、题目描述: 二、解题分析: 1、leetcode解析 2、测试用例 3、代码实现 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): ... def reverseList(self, head: ...
难度:简单 一、题目描述: 二、解题分析: 1、leetcode解析 2、测试用例 3、代码实现 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): ... def reverseList(self, head: ...
1、剑指解析: 2、代码实现: I、辅助栈 from typing import List ###### 代码主体 ###### class Solution: def reversePrint(self, head: ListNode) -> List[int]: stack = [] if head is None: return [] ...
题目描述 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 原创文章 264获赞 692访问量 3万+ 关注 私信 展开阅读全文 作者:程旭员
【面试题07】重建二叉树 难度: 中等 限制: 0 <= 节点个数 <= 5000 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 Leetcode题目对应...
1、剑指解析: 2、代码实现: from typing import List ###### 代码主体 ###### class Solution: def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode: if not preorder: return None ...
难度:中等 一、题目描述: 二、解题分析: class Solution: def __init__(self): self.head, self.pre = None, None def treeToDoublyList(self, root: 'Node') -> 'Node': if not root: ...
1、剑指解析 2、测试用例 3、代码实现 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def getKthFromEnd(self, head: ...
1、剑指解析 2、代码实现 class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: if len(nums)target or nums[j]+nums[j-1]<target: return [] while i<j: if nums[i]+nums[j]...
剑指offer 面试题1:赋值运算符函数、 为如下CMyString类型添加赋值运算符函数 #include #include //为下列函数添加赋值运算符函数 class CMyString { public: CMyString(char *pData = nullptr); CMyString(const...
1、剑指解析: 2、特殊用例: 3、代码实现: I、原地双指针(从后向前复制) 从后向前复制是《剑指》推荐的一种解法,可以适用于各种编程语言。每' '比' '多两个字符。两个指针都是从后向前。通过先统计字符串...
1、剑指解析 2、代码实现 class Solution: def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]: deque = [];result = [] # deque也可以用collection里的双端队列实现 for i in range(0, len...
【面试题06】从尾到头打印链表 难度: 简单 限制: 0 <= 链表长度 <= 10000 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 Leetcode题目对应位置: 面试题06:从尾到头打印链表 思路...
1、剑指解析 2、代码实现 class Solution: def twoSum(self, n: int) -> List[float]: if n==1: s = 6**1 return [round(1/s,5) for i in range(6)] def func(n:int): if n==1: #递归终止条件 return {key:1...
1、剑指解析 2、代码实现 I、剑指思路 class Solution: def extreme_insertion_index(self, nums, target, left): lo = 0 hi = len(nums) while lo target or (left and target == nums[mid]): hi = mid else...
我们把只包含因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 示例: 输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。 说明: ...
假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例 1: 输入: [7,1,5,3,6,4] ...如果不加中间那个判断,是没法过用时的,所以突然想起的限制条件让我过了这道题
1、剑指解析 I、自顶向下 II、自底向上 2、代码实现 I、自顶向下 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None ...
题目 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m] 。请问 k[0]k[1]…*k[m] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它...
题目描述 请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。 思路 详见链接 代码 class Solution: ...
题目 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) ...
请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。 若队列为空,pop_front 和 max_value 需要返回 -1 示例 1: ...
题目描述 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 原创文章 264获赞 696访问量 3万+ 关注 私信 展开阅读全文 作者:程旭员
面试题45. 把数组排成最小的数 解法:自定义排序规则(Python) 详细参考 Krahets class Solution: def minNumber(self, nums: List[int]) -> str: def sort_rule(x, y): a, b = x + y, y + x if a > b: return ...
题目描述 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m] 。请问 k[0]k[1]…k[m] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们...
难度:中等 一、题目描述: 二、解题分析: 1、leetcode解析 此处的动态规划转移方程不能定量的写出来,但是应该能感觉到第i个丑数是由前面的数X2/3/5造出来的 至于究竟X多少,需要找到这些数里面比前一个丑数大的...
1、剑指解析: 2、测试用例: 3、代码实现 I、回溯法 class Solution: def movingCount(self, m: int, n: int, k: int) -> int: self.discoveryed_plots = [] matrix = [[*] * n] * m self.discovery(matrix, ...
难度:简单 一、题目描述: 二、解题分析: 1、leetcode解析 2、代码实现 class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: if not matrix:return [] m,n = len(matrix),len...